home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / machack / Hacks97 / NewsTicker.sit / NewsTicker / source code / WindowStuff / TickerReadHeadlines.cp < prev    next >
Text File  |  1997-06-21  |  3KB  |  132 lines

  1. /*------------------------------------------------------------------------------
  2. #
  3. #    NewsTicker, my Hack for 1997
  4. #
  5. #    TickerReadHeadlines.cp    -    Handle the classes that do the dirty work.
  6. #
  7. ------------------------------------------------------------------------------*/
  8. #include "ICAPI.h"    // Internet config stuff
  9.  
  10. #include "TickerGlobals.h"        /* bring in all the #defines for NewsTicker */
  11. #include "TickerReadHeadlines.h"
  12. #include "TickerWindowHandler.h"
  13. #include "TickerCheckWebs.h"
  14. #include "NewsComExtractor.h"
  15. #include "AppleExtractor.h"
  16. #include "CNNExtractor.h"
  17.  
  18. // Globals for the URL launching
  19.  
  20. ICInstance    gTheInst = nil;
  21. short        gICInitted = false;
  22. //
  23. // Handle the two derived HTML parser classes, to read the headlines and put them in
  24. // the scrolling list.  Also put the changed web pages into the list
  25. //
  26. void FillTheHeadlines( sMyDataPtr    gGlobalsPtr )
  27. {
  28.     short    index;
  29.     
  30.     gGlobalsPtr->MsgCount = 0;
  31.     gGlobalsPtr->MsgWidth = 0;
  32.     for (index = 0; index<maxHeadlines; index++)
  33.     {
  34.         gGlobalsPtr->theHeadlines[index].Subject[0] = 0;
  35.     }
  36.     
  37.     UpdateChangedWebs(gGlobalsPtr);
  38.     
  39.     if (gThePrefs.DoReadCNN)
  40.     {
  41.         LoadCNN(gGlobalsPtr);
  42.     }
  43.     
  44.     if (gThePrefs.DoReadNews)
  45.     {
  46.         LoadNewsCom(gGlobalsPtr);
  47.     }
  48.  
  49.     if (gThePrefs.DoReadApple)
  50.     {
  51.         LoadAppleCom(gGlobalsPtr);
  52.     }
  53.     
  54.     InitCursor();
  55. }
  56. //
  57. //  Find out if we need to reload pages and, if so, do so
  58. //
  59. void MaybeReload( sMyDataPtr    gGlobalsPtr )
  60. {
  61.     if (gThePrefs.DoReadCNN)
  62.     {
  63.         if (MustReloadCNN(gGlobalsPtr))
  64.         {
  65.             LoadCNN(gGlobalsPtr);
  66.             CalcOffsets(gGlobalsPtr);
  67.         }
  68.     }
  69.     
  70.     if (gThePrefs.DoReadNews)
  71.     {
  72.         if (MustReloadNewsCom(gGlobalsPtr))
  73.         {
  74.             LoadNewsCom(gGlobalsPtr);
  75.             CalcOffsets(gGlobalsPtr);
  76.         }
  77.     }
  78.     
  79.     if (gThePrefs.DoReadApple)
  80.     {
  81.         if (MustReloadAppleCom(gGlobalsPtr))
  82.         {
  83.             LoadAppleCom(gGlobalsPtr);
  84.             CalcOffsets(gGlobalsPtr);
  85.         }
  86.     }
  87.     
  88.     CheckChangedWebPages(gGlobalsPtr);
  89.     InitCursor();
  90. }
  91. //
  92. // When an item is double-clicked on, launch the URL.  (And, if it's a web page,
  93. // remove it from the list of changed pages).
  94. //
  95. void OpenItem(sMyDataPtr    gGlobalsPtr, short whichitem)
  96. {
  97.     if (gGlobalsPtr->theHeadlines[whichitem].cicnResID == kWebIconID)
  98.         UpdateAWebEntry(gGlobalsPtr, whichitem);
  99.         else LaunchURL(gGlobalsPtr->theHeadlines[whichitem].URL);
  100. }
  101. //
  102. // Initialize Internet Config
  103. //
  104. void InitInternetConfig(void)
  105. {
  106.     ICError theerr;
  107.     
  108.     if (!gICInitted)
  109.     {
  110.         theerr = ICStart(&gTheInst, 'NwTk');
  111.         
  112.         if (theerr==noErr)
  113.         {
  114.             theerr = ICFindConfigFile(gTheInst, 0, nil);
  115.         }
  116.         if (theerr == noErr)
  117.             gICInitted = true;
  118.     }
  119.     
  120. }
  121. //
  122. // Launch a URL using Internet Config
  123. //
  124. void LaunchURL(Str255 theURL)
  125. {
  126.     long selstart = 0;
  127.     long selend = theURL[0];
  128.     
  129.     if (gICInitted)
  130.         ICLaunchURL (gTheInst, "\p", (char*)&theURL[1], theURL[0], &selstart, &selend);
  131. }
  132.